package com.warmheart.builder.operation;

import com.warmheart.core.co.base.BaseCoBuilder;
import com.warmheart.core.co.oper.Co;
import com.warmheart.entity.operation.OperationLog;

/**
 * 
 * @ClassName: OperationLog
 * @Description: 操作记录实体CoBuilder类，对应表名称为tb_operation_log
 *               温馨提示：不要修改该实体CoBuilder类的任何字段
 * @author ZhangJianyang
 * @date 2025年06月20日 下午14:00:55
 *
 */
public class OperationLogCoBuilder extends BaseCoBuilder<OperationLog, OperationLogCoBuilder> {

    private final OperationLog t;

    @Override
    protected OperationLogCoBuilder self() {
        return this;
    }

    @Override
    public OperationLog core() {
        return this.t;
    }

    public OperationLogCoBuilder(OperationLog operationLog) {
        t = operationLog;
    }

    /**
     * 用户id
     */
    private Co<OperationLog, OperationLogCoBuilder> userId;

    /**
     * 用户名
     */
    private Co<OperationLog, OperationLogCoBuilder> name;

    /**
     * ip地址
     */
    private Co<OperationLog, OperationLogCoBuilder> ipAddress;

    /**
     * 操作描述
     */
    private Co<OperationLog, OperationLogCoBuilder> operationDesc;

    /**
     * 请求url
     */
    private Co<OperationLog, OperationLogCoBuilder> requestUri;

    /**
     * 请求方法名
     */
    private Co<OperationLog, OperationLogCoBuilder> requestMethod;

    /**
     * 入参
     */
    private Co<OperationLog, OperationLogCoBuilder> paramInput;

    /**
     * 出参
     */
    private Co<OperationLog, OperationLogCoBuilder> paramOutput;

    /**
     * 操作状态（01成功02失败）
     */
    private Co<OperationLog, OperationLogCoBuilder> status;

    public Co<OperationLog, OperationLogCoBuilder> userId() {
        if (this.userId == null) {
            this.userId = new Co<OperationLog, OperationLogCoBuilder>(self(), "user_id");
        }
        return this.userId;
    }

    public Co<OperationLog, OperationLogCoBuilder> name() {
        if (this.name == null) {
            this.name = new Co<OperationLog, OperationLogCoBuilder>(self(), "name");
        }
        return this.name;
    }

    public Co<OperationLog, OperationLogCoBuilder> ipAddress() {
        if (this.ipAddress == null) {
            this.ipAddress = new Co<OperationLog, OperationLogCoBuilder>(self(), "ip_address");
        }
        return this.ipAddress;
    }

    public Co<OperationLog, OperationLogCoBuilder> operationDesc() {
        if (this.operationDesc == null) {
            this.operationDesc = new Co<OperationLog, OperationLogCoBuilder>(self(), "operation_desc");
        }
        return this.operationDesc;
    }

    public Co<OperationLog, OperationLogCoBuilder> requestUri() {
        if (this.requestUri == null) {
            this.requestUri = new Co<OperationLog, OperationLogCoBuilder>(self(), "request_uri");
        }
        return this.requestUri;
    }

    public Co<OperationLog, OperationLogCoBuilder> requestMethod() {
        if (this.requestMethod == null) {
            this.requestMethod = new Co<OperationLog, OperationLogCoBuilder>(self(), "request_method");
        }
        return this.requestMethod;
    }

    public Co<OperationLog, OperationLogCoBuilder> paramInput() {
        if (this.paramInput == null) {
            this.paramInput = new Co<OperationLog, OperationLogCoBuilder>(self(), "param_input");
        }
        return this.paramInput;
    }

    public Co<OperationLog, OperationLogCoBuilder> paramOutput() {
        if (this.paramOutput == null) {
            this.paramOutput = new Co<OperationLog, OperationLogCoBuilder>(self(), "param_output");
        }
        return this.paramOutput;
    }

    public Co<OperationLog, OperationLogCoBuilder> status() {
        if (this.status == null) {
            this.status = new Co<OperationLog, OperationLogCoBuilder>(self(), "status");
        }
        return this.status;
    }
}